#ifndef _STORAGE_INTERFACE_H_
#define _STORAGE_INTERFACE_H_

#include "parm_cfg.h"

#define LOGIN_FILE_NEME     "/extflash/login_cfg"
#define UART_FILE_NEME      "/extflash/uart_cfg"
#define DIDO_FILE_NEME      "/extflash/dido_cfg"
#define NET_FILE_NEME       "/extflash/net_cfg"
#define VOUCHER_FILE_NEME   "/extflash/voucher_cfg"
#define NTP_FILE_NEME       "/extflash/ntp_cfg"
#define OTA_FILE_NEME       "/extflash/ota_cfg"

#define IP_ADDR_STR_LEN     16

typedef enum
{
    DIDO_DEFAULT,           /* 不处理DIOD */
    DIDO_REALTIME,          /* 实时获取DIDO */
}dido_get_e;

/***************************************************************
* @brief 获取文件系统中存储的配置信息
* @param file_name 配置文件名称
* @param ctx 存储的结构体类型
* @param lenght 存储的结构体类型的长度
* @param dido_get_e 是否实时读取DIDO状态信息
* @return error_e 错误类型
***************************************************************/
error_e get_storage_cfg_info(const unsigned char *file_name, void *ctx, unsigned int lenght, dido_get_e type);

/***************************************************************
* @brief 存储配置信息文件到文件系统中
* @param file_name 配置文件名称
* @param ctx 存储的结构体类型
* @param lenght 存储的结构体类型的长度
* @return error_e 错误类型
***************************************************************/
error_e set_storage_cfg_info(const unsigned char *file_name, void *ctx, unsigned int lenght);

/* IP地址 字符串 转 unsigned int */
unsigned int ip_to_int(const char *ip_str);
/* IP地址 unsigned int 转 字符串 */
void int_to_ip(unsigned int ip_int, char *ip_str);

#endif /* _STORAGE_INTERFACE_H_ */
